package com.hsurosy.domain.activity.model.entity;

import com.hsurosy.domain.activity.model.valobj.OrderTradeTypeVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Author Hsu琛君珩
 * @Date 2024-11-08 17:51
 * @Description 活动商品充值实体 举例：用户user123为SKU4001进行充值，外部业务单号为OUT123456，该字段用于保证幂等性，确保多次调用不会产生重复充值。
 * @Version: v1.0.0
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SkuRechargeEntity {

    /** 用户ID */
    private String userId;
    /** 商品SKU - activity + activity count */
    private Long sku;
    /** 幂等业务单号，外部谁充值谁透传，这样来保证幂等（多次调用也能保证结果唯一，不会多次充值） */
    private String outBusinessNo;
    /** 订单交易类型，默认为 “返利奖品，不需要支付类交易” */
    private OrderTradeTypeVO orderTradeType = OrderTradeTypeVO.rebate_no_pay_trade;

}
